package com.study.java.base;

public class DataType {
    public static final int I = 1200;
    /*
    1. 基本数据类型
    2. 空性 void
    3. 引用类型(类,接口,枚举,数组, 字符串...)
     */

    // 基本数据类型

    // byte
    byte b = 50;  // 取值范围：-128~127
    byte b2 = 127;
    byte b3 = -125;


    // short
    short s = -32768;   // 取值范围：-32768~32767
    short s2 = 500;
    short s3 = -1200;


    // int
    static int i = 98655; // 取值范围2的负31次方~2的31次方-1
    int i2 = 2147483647;  // 有符号最大值2 147 483 647
    int i3 = -2147483648;

    // long
    long l = 655266; // // 取值范围2的负63次方~2的63次方-1
    long l2 = 655266L; // // 取值范围2的负63次方~2的63次方-1

    // float
    float f = 3.14985498465985489f;  // 4个字节

    // double
    double d = 3.14985498465985489;  // 8个字节

    // 字符char
    char c = 'A';
    char c2 = '啊';

    // 布尔型 boolean
    boolean bo = true;
    boolean bo2 = false;

    //字符串
    char[] c6 = {'1','3', '5'} ;
    String ss = "135";



    public static void main(String[] args){
        float f = 3.14985498465985489f;  // 4个字节
        double d = 3.14985498465985489;  // 8个字节
       // System.out.println(f);
       // System.out.println(d);

        short s = 500; //  0000 0001 1111 0100
                       //  1111 0100

        //System.out.println("原始S: "+s);
        byte b = (byte) s;
        //System.out.println("原始S: "+b);
        byte b2 = (byte) 0b11110100;
       // System.out.println(b2);

        // int to byte
        int R = 0 ;
        int I = 22222200;   // 00000000 00000000 00000100 10110000
        byte[] bytes = new byte[4]; // 创建了一个长度为4的字节数组
        bytes[0] = (byte) ((I & 0x000000FF));  // // 000000 000000 000000 0000
        bytes[1] = (byte) ((I & 0x0000FF00)>>8);  // 000000 000000 1111111 000000
        bytes[2] = (byte) ((I & 0x00FF0000)>>16);// 000000 1111111 000000 000000
        bytes[3] = (byte) ((I & 0xFF000000)>>24);// 1111111 000000 000000 000000
        R = (bytes[0]&0xFF)
                | ((bytes[1]<<8) & 0xFF00)
                | ((bytes[2]<<16)&0xFF0000)
                | ((bytes[3]<<24)&0xFF000000);
        System.out.println(R);
    }



}
